#define _CRT_SECURE_NO_WARNINGS

//#include <iostream>
//using namespace std;
//
//int a[101][101];
//int b[101][101];
//int n, m;
//
//int dx[8] = { -1,-1,-1,1,1,1,0,0 };
//int dy[8] = { -1,0,1,-1,0,1,-1,1 };
//
//void dfs(int i, int j)
//{
//    int count = 0;
//    for (int k = 0; k < 8; k++)
//    {
//        int x = dx[k] + i, y = dy[k] + j;
//        if (x >= 0 && x < n && y >= 0 && y < m && a[x][y] == 1)
//        {
//            count++;
//        }
//    }
//
//    if (count && a[i][j] == 0)
//    {
//        b[i][j] = count;
//        return;
//    }
//    else if (a[i][j] == 1)
//    {
//        b[i][j] = 9;
//        return;
//    }
//}
//int main()
//{
//    cin >> n >> m;
//    for (int i = 0; i < n; i++)
//    {
//        for (int j = 0; j < m; j++)
//        {
//            cin >> a[i][j];
//        }
//    }
//
//    for (int i = 0; i < n; i++)
//    {
//        for (int j = 0; j < m; j++)
//        {
//            dfs(i, j);
//        }
//    }
//
//    for (int i = 0; i < n; i++)
//    {
//        for (int j = 0; j < m; j++)
//        {
//            cout << b[i][j] << " ";
//        }
//        cout << '\n';
//    }
//
//    return 0;
//}

//#include <iostream>
//#include<queue>
//using namespace std;
//
//const int N = 2e5 + 10;
//int a[N];
//
//int main()
//{
//    priority_queue<int> pq;
//    int count = 0;
//    int n;
//    cin >> n;
//
//    for (int i = 0; i < n; i++)
//    {
//        cin >> a[i];
//        pq.push(a[i]);
//    }
//    int t = 0;
//    for (int i = 0; i < n; i++)
//    {
//        int k = pq.top();
//        pq.pop();
//        int p = 0;
//        for (int j = 0; j < n; j++)
//        {
//            if (a[j] != 1 && k == a[j])
//            {
//                a[j] = sqrt(abs(a[j] / 2) + 1);
//                t = j;
//                count++;
//                break;
//            }
//            if (a[j] == 1) p++;
//        }
//        pq.push(a[t]);
//        if (p == n) break;
//    }
//    cout << count - 1<< '\n';
//
//    return 0;
//}

